.authorization {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  background-color: #e5ff00;
  border: 2px solid #000000;
  outline: 2px solid #e60f6c;
  border-radius: 20px;
  padding: 20px;

  &_green {
    background-color: #0dff00;
    outline-color: #018dea;
  }

  &_blue {
    background-color: #14c4b8;
    outline-color: #ff0000;
  }

  &_pink {
    background-color: #eba0a0;
    outline-color: #14c4b8;
  }

  &__title {
    margin: 0 0 20px;
    font-weight: 600;
    font-size: 20px;
    line-height: 1;
    align-self: start;
    color: #e7126e;
    text-shadow: 1.2px 1.2px #000;
  }

  &__form {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    width: 100%;
  }

  &__label {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
  }

  &__input-title,
  &__msg {
    color: #000;
    font-weight: 400;
    font-size: 12px;
    line-height: 1;
  }

  &__input,
  &__button,
  &__text,
  &__link,
  &__key {
    font-size: 14px;
    line-height: 1;
    font-weight: 400;
    color: #000;
  }

  &__input,
  &__input_red {
    padding-block: 0;
    padding-inline: 0;
    box-sizing: border-box;
    background-color: #f9f9f9;
    border-radius: 8px;
    width: 100%;
    height: 46px;
    border: 0;
    text-overflow: ellipsis;
    overflow-y: clip;
    padding: 15px 8% 15px 15px;
    outline: 1px solid #000;

    &:focus {
      outline: 2px solid #128fa8;
    }

    &:disabled {
      background-color: #ccc;
      cursor: not-allowed;
    }
  }

  &__input:focus {
    outline: 2px solid #128fa8;
  }

  &__input_red:focus {
    outline: 2px solid #dc0c0c;
  }

  &__button {
    outline: 0;
    font-weight: 500;
    width: 60%;
    height: 45px;
    border-radius: 3px;
    border: 1px solid #000;
    margin: 15px 0 -10px;
    background-color: #e7126e;

    &_disabled {
      background-color: #b1b0b0;
      cursor: not-allowed;
    }
  }

  &__text {
    margin: 0;
    display: flex;
  }

  &__link {
    text-decoration: none;
    font-weight: 600;
    color: #fc0b73;

    &_separate {
      border: 1px solid #000;
      border-radius: 8px;
      font-weight: 400;
      color: #000;
      padding: 1%;
      background-color: #e7126e;
    }
  }

  &__key {
    border: 0;
    outline: 0;
    background-color: transparent;
    font-weight: 500;
    padding: 0;

    &_disabled {
      color: gray;
      cursor: not-allowed;
    }
  }

  &__msg {
    display: block;
    text-align: center;
    border: 1px solid #000;
    background-color: #fff;
    margin: 0;
    padding: 5px;
    border-radius: 10px;

    &_hidden {
      display: none;
    }
  }

  @media (max-width: 499px) {
    & {
      border-width: 0.6vw;
      outline-width: 0.6vw;
      border-radius: 4vw;
      padding: 4vw;
    }

    &__title {
      margin-bottom: 4vw;
      font-size: 4.2vw;
      text-shadow: 0.25vw 0.25vw #000;
    }

    &__form {
      gap: 4vw;
    }

    &__label {
      gap: 2vw;
    }

    &__input-title,
    &__msg {
      font-size: 3.5vw;
    }

    &__input,
    &__input_red {
      font-size: 4.5vw;
    }

    &__text,
    &__link,
    &__key {
      font-size: 3.5vw;
    }

    &__link_separate {
      border-width: 0.2vw;
      border-radius: 1.5vw;
    }

    &__input,
    &__input_red {
      border-radius: 1.7vw;
      height: 9vw;
      padding: 3vw 8% 3vw 3vw;
      outline-width: 0.2vw;

      &:focus {
        outline-width: 0.6vw;
      }
    }

    &__button {
      font-size: 4vw;
      height: 10vw;
      border-radius: 0.3vw;
      border-width: 0.2vw;
      margin: 3vw 0 -2vw;

      &_long {
        width: 88%;
      }
    }

    &__msg {
      border-width: 0.2vw;
      padding: 1vw;
      border-radius: 2vw;
    }
  }
}
